/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.edu.espe.ccsoft.mantenimiento.bean;

import ec.edu.espe.ccsoft.mantenimiento.modelos.Usuario;
import ec.edu.espe.ccsoft.mantenimiento.servicios.LogServicio;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author misahaelfernandez
 */
@ManagedBean
@SessionScoped
public class LogBean implements Serializable {

    @EJB
    private LogServicio logServicio;
    private Usuario usuario;

    @PostConstruct
    public void init() {
        usuario = new Usuario();
    }

    public String validarSesion() {

        Usuario usuarioTmp = logServicio.obtenerUsuarioPorCorreo(usuario.getEmail());

        if (usuarioTmp != null) {
            if (logServicio.IniciarSesion(usuarioTmp.getEmail(), usuarioTmp.getContrasena())) {
                HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
                if (session != null) {
                    session.setAttribute("codigoRol", usuarioTmp.getRol().getCodRol());
                    session.setAttribute("codigoUsuario", usuarioTmp.getCodUsuario());
                }

                if (usuarioTmp.getNuevo()) {
                    return "CambioContrasena";
                }
                return "Home";
            }
        }
        return null;
    }

    public String nombreUsuario() {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        return logServicio.obtenerUsuarioByCodigo((Integer) session.getAttribute("codigoUsuario")).getNombres()+" "+
                logServicio.obtenerUsuarioByCodigo((Integer) session.getAttribute("codigoUsuario")).getApellidos();
    }

    public String cerrarSesion() {
        FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
        return "/LogIn.xhtml?faces-redirect=true";
    }

    public Usuario getUsuario() {
        if (usuario == null) {
            usuario = new Usuario();
        }
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

}
